package org.apache.click.doubleclick.annotationconfig.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Annotation to use to define deploy aware control. If any class found which is
 * annotated with this annotation, and "value=true" then during the application
 * deployment time the annotated class will be notified. The class must have to
 * implement {@link org.apache.click.Control}, otherwise a runtime exception will
 * be thrown.
 *
 * @author Jahid Shohel (jshohel@gmail.com)
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface DeployAwareControl {
    /**
     * Returns boolean to indicate if this control is a deploy aware control. Default
     * value is false.
     *
     * @return true if this is a deploy aware control, false otherwise.
     */
    public boolean value() default false;
}
